/*
    PTA B1015
*/

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
typedef struct student{
    int id;
    int a,b;
}student;
vector<student>v1,v2,v3,v4;
//要注意结构体排序的方式！！！！！
bool cmp(student a,student b){
    if(a.a+a.b==b.a+b.b){
        if(a.a==b.a) return a.id<b.id;
        return a.a>b.a;
    }
    return a.a+a.b>b.a+b.b;
}
int main(){
    int n,L,H;
    int num=0;
    cin>>n>>L>>H; 
    for(int i=0;i<n;i++){
        student stu;
        cin>>stu.id>>stu.a>>stu.b;
        if(stu.a>=L&&stu.b>=L){
            num++;
            if(stu.a>=H&&stu.b>=H) v1.push_back(stu);
            else if(stu.a>=H&&stu.b<H) v2.push_back(stu);
            else if(stu.a>=stu.b) v3.push_back(stu);
            else v4.push_back(stu);
        }
    }
    cout<<num<<endl;
    sort(v1.begin(),v1.end(),cmp);
    sort(v2.begin(),v2.end(),cmp);
    sort(v3.begin(),v3.end(),cmp);
    sort(v4.begin(),v4.end(),cmp);
    for(int i=0;i<v1.size();i++) cout<<v1[i].id<<" "<<v1[i].a<<" "<<v1[i].b<<endl;
    for(int i=0;i<v2.size();i++) cout<<v2[i].id<<" "<<v2[i].a<<" "<<v2[i].b<<endl;
    for(int i=0;i<v3.size();i++) cout<<v3[i].id<<" "<<v3[i].a<<" "<<v3[i].b<<endl;
    for(int i=0;i<v4.size();i++) cout<<v4[i].id<<" "<<v4[i].a<<" "<<v4[i].b<<endl;
    return 0;
}